using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.Collections.Generic;

namespace Sustainalytics.Entities.ScreeningTool
{
    public class ScreeningData : IEntity, IHasUniverseIds
    {
        public Guid Id { get; set; }
        public int CompanyId { get; set; }
        public int CapitalIqId { get => CompanyId; set { CompanyId = value; } }
        public string CompanyName { get; set; }

        [BsonIgnoreIfNull] public string CompanyNameLowerCase { get; set; }
        [BsonIgnoreIfNull] public string CompanyNameUrlFriendly { get; set; }
        [BsonIgnoreIfNull] public string MainExchange { get; set; }
        [BsonIgnoreIfNull] public string MainTicker { get; set; }
        [BsonIgnoreIfNull] public string TemplateType { get; set; }
        [BsonIgnoreIfNull] public Guid? ResearchParentId { get; set; }
        [BsonIgnoreIfNull] public ResearchStates ResearchStates { get; set; }
        [BsonIgnoreIfNull] public List<int> UniverseIds { get; set; }
        [BsonIgnoreIfNull] public IEnumerable<string> SecurityListIds { get; set; }

        [BsonExtraElements] public BsonDocument ExtraElements { get; set; }
    }
}
